package lifei.lifei.spring.pojo;

import lombok.Data;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

/**
 * @author 小李
 * @version 1.0
 * @date 2021/9/26 19:33
 */
//演示实现接口完成bean生命周期
@Data
public class Cat implements InitializingBean, DisposableBean {
    private String name;
    private String color;
    public Cat(){
        System.out.println("我是无参构造");
    }
    public void sayHello(){
        System.out.println("主人我饿了！该喂食啦！！！");
    }
    //初始化方法
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("调用接口方法实现bean的初始化");
    }
    //销毁方法
    @Override
    public void destroy() throws Exception {
        System.out.println("调用接口方法实现bean的销毁");
    }
    //使用注解完成bean的生命周期
    @PostConstruct
    public void initAnn(){
        System.out.println("我正在被初始化。。。");
    }
    @PreDestroy
    public void destroyAnn(){
        System.out.println("主人，不要抛弃我。。。");
    }
    public void init(){
        System.out.println("我正在被初始化。。。");
    }
    public void destroyIOC(){
        System.out.println("主人，不要抛弃我。。。");
    }
}